ABC344B Delimiter
题目分析¶
题目要求输入若干个整数,每行一个,直到输入 0 为止,0 也算在输入中。
- 输入的最后一个数一定是
0; - 其它所有数都不是
0; - 输入个数不确定;
- 要求把这些数倒着输出。
解题思路¶
我们使用一个数组 a 来存储输入的每个数。
题目说最多 100 个整数,因此数组大小可以定义为 a[105]。
实现步骤¶
- 定义数组:
int a[105]; - 定义计数变量:
int n = 0; - 使用
while(true)无限循环读入每个数:- 每次输入一个数,首先执行
n++,然后存到a[n]; - 如果这个数是
0,就停止输入执行break;
- 每次输入一个数,首先执行
- 使用
for循环从n到1,倒着输出数组a的内容。
复杂度分析¶
- 时间复杂度:$O(N)$,每个数读一次、输出一次;
- 空间复杂度:$O(N)$,最多存 100 个数;
其中 $N$ 为实际输入的整数个数。
总结¶
- 用数组
a存每个输入的数; - 最后倒着输出数组
a中存的数; - 数组长度用变量
n记录,不需要事先知道输入有多少个数。